#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

#define USER "USER"
#define MY_VAL "testval"
#define nullptr (void*)0
#define PWD "PWD"

int main()
{
    ////模拟实现pwd
    //char* pwd = getenv(PWD);
    //if (pwd == nullptr)
    //{
    //    cout << "err" << endl;
    //}
    //else 
    //{
    //    cout << "pwd = " << pwd << endl;
    //}

    ////getenv不仅可以查系统环境变量 还可以查自定义环境变量
    ////在bash中直接定义的环境变量是本地环境变量 是查不到的（在bash命令行中写 testval=114514)
    //本地环境变量是在bash内部的环境变量 是不能被子进程继承的 所以本地环境变量并不具有全局性
    ////我们可以现在bash中定义本地环境变量 在用export导入到bash的环境变量中 这样就能查到了(export testval)
    ////因为bash是一个系统进程 我们所运行的程序都是bash的一个子进程 所以bash的环境变量就会继承给子进程 这样的话bash的环境变量就具有了全局性
    //char* my_val = getenv(MY_VAL);
    //if (my_val == nullptr)
    //{
    //    cout << MY_VAL " not found" " nothing to match" << endl;
    //}
    //else 
    //{
    //    cout << MY_VAL " is ";
    //    cout << my_val << endl;

    //}

    ////可以通过getenv获取环境变量
    ////其中USER环境变量可以用于权限的检测
    //char* user = getenv(USER);
    //
    //if (strcmp(user, "root") == 0)
    //{
    //    cout << "root 欢迎回来！" << endl;
    //}
    //else 
    //{
    //    cout << "权限不足！" << endl;
    //}
    return 0;
}
